java string.contains 在 switch 语句中
全部标签 我有一份大约的list。500,000根琴弦,每根大约100个字符长。给定一个搜索词,我想识别列表中包含搜索词的所有字符串。目前,我正在使用Select方法(“MATCH%term%”)对一个普通的旧数据集执行此操作。这在我的笔记本电脑上大约需要600毫秒。我想让它更快,可能是100-200毫秒。推荐的方法是什么?性能至关重要,因此我可以在必要时(在合理范围内)以内存占用换取更好的性能。字符串列表一旦初始化就不会改变,因此计算哈希值也是一种选择。有没有人有推荐,哪种C#数据结构最适合该任务? 最佳答案 我听说过关于Lucene.NE
我的Controller中有调用以下方法的操作:publicIQueryablegetcontactinfo(long[]id){varorganizationsiteids=fromaccountsitemappinginentities.AccountSiteMappingswhereid.Any(accountid=>accountsitemapping.ACCOUNTID==accountid)selectaccountsitemapping.SITEID;varusersdepts=fromuserdeptinentities.UserDepartmentsjoindeptd
我有一个汽车对象列表Listcars=GetMyListOfCars();我想看看列表中是否有汽车if(cars.Contains(myCar)){}Contains使用什么来确定myCar是否在列表中。它是否对我的汽车对象执行“ToString()”。它是否使用Equals()方法,即gethashcode()?我知道我可以传递我自己的IEqualityComparer来强制我自己的实现,但只是想了解它默认情况下的作用。 最佳答案 直接来自MSDN-List.Contains:Thismethoddeterminesequalit
Objectt=4;Objects=4;if(t==s){//false}Listq=newList(){t};Booleanfound=q.Contains(s);//found=true!在上面的代码中,我对t==s返回false并不感到意外;它正在比较对两个对象的引用,并且引用不相同。但令我惊讶的是Contains正在返回true;显然它不只是比较对象引用..它就像是在比较4和4的未装箱值..但是它如何以及为什么知道拆箱对象以进行比较?我试图理解这里发挥作用的更大原则。 最佳答案 表达式q.Contains(s)正在寻找q的元
与数据库连接对象一起使用时,using语句是否真的调用了close方法?TheMSDNdocumentation说它确保调用Dispose方法但没有提到关闭。我在StackOverflow上看到有人说它可以同时做到这两点。是否有人从Microsoft或其他确凿的证据中以某种方式给出了具体的答案? 最佳答案 这是SqlConnection类的“Dispose”方法:protectedoverridevoidDispose(booldisposing){if(disposing){this._userConnectionOptions=
我正在处理一个Switch语句,并且有两个条件我需要查看值是否以特定值开头。Switch语句就是这样做的。错误显示“无法将类型bool转换为字符串”。有人知道我是否可以在Switch中使用StartsWith或者我是否需要使用If...Else语句?switch(subArea){case"4100":case"4101":case"4102":case"4200":return"ABC";case"600A":return"XWZ";casesubArea.StartsWith("3*"):casesubArea.StartsWith("03*"):return"123";defau
我想创建这个查询:select*fromproductswherenumberin('123','234','456');但我找不到任何使用Npgsql和NpgsqlParameter实现此目的的示例。我试过这样:string[]numbers=newstring[]{"123","234"};NpgsqlCommandscmd=newNpgsqlCommands("select*fromproductswherenumberin(:numbers)");NpgsqlParameterp=newNpgsqlParameter("numbers",numbers);command.Par
我正在尝试使用内置的Sum()函数对float列表求和,但我不断收到此错误:ErrorCS1061:'System.Collections.Generic.List'doesnotcontainadefinitionfor'Sum'andnoextensionmethod'Sum'acceptingafirstargumentoftype'System.Collections.Generic.List'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)(CS1061)我有usingSystem.Collect
我正在开发一个C#4.5应用程序,我需要一个函数来返回true以进行以下比较:"blaLéOnArd/obla".ComplexContains("leonardo")换句话说,我需要string.Compare(str1,str2,CultureInfo.InvariantCulture,CompareOptions.IgnoreCase|CompareOptions.IgnoreSymbols|CompareOptions.IgnoreNonSpace)来检查“包含!”有人能帮忙吗? 最佳答案 您可以使用适当的CompareIn
我最近读到有关内存障碍和重新排序的问题,现在我对此有些困惑。考虑以下场景:privateobject_object1=null;privateobject_object2=null;privatebool_usingObject1=false;privateobjectMyObject{get{if(_usingObject1){return_object1;}else{return_object2;}}set{if(_usingObject1){_object1=value;}else{_object2=value;}}}privatevoidUpdate(){_usingMetho